[XEND] Fix outputting device SXPs when domain is halted.
authorAlastair Tse <atse@xensource.com>
Fri, 1 Dec 2006 16:31:36 +0000 (16:31 +0000)
committerAlastair Tse <atse@xensource.com>
Fri, 1 Dec 2006 16:31:36 +0000 (16:31 +0000)
Signed-off-by: Alastair Tse <atse@xensource.com>
tools/python/xen/xend/XendConfig.py
tools/python/xen/xend/XendDomainInfo.py

index 2b61760c1ce2fe534ca22891bce0f82781be54da..698c4a348790d9bddc5d11b8a3445e3293d6ff51 100644 (file)
@@ -964,7 +964,7 @@ class XendConfig(dict):
         sxprs = []
         pci_devs = []
 
-        if 'devices' in self:
+        if 'devices' not in self:
             return sxprs
         
         for dev_type, dev_info in self['devices'].values():
index dd8c2c3b273f551a146683fe972c9a169a02f4ee..0aa71fc4e6882359e1a4028f79489b2a90f13395 100644 (file)
@@ -580,8 +580,18 @@ class XendDomainInfo:
         return self.getDeviceController(deviceClass).destroyDevice(devid)
 
 
+
     def getDeviceSxprs(self, deviceClass):
-        return self.getDeviceController(deviceClass).sxprs()
+        if self.state == DOM_STATE_RUNNING:
+            return self.getDeviceController(deviceClass).sxprs()
+        else:
+            sxprs = []
+            dev_num = 0
+            for dev_type, dev_info in self.info.all_devices_sxpr():
+                if dev_type == deviceClass:
+                    sxprs.append([dev_num, dev_info])
+                    dev_num += 1
+            return sxprs
 
 
     def setMemoryTarget(self, target):